iT邦幫忙

2024 iThome 鐵人賽

DAY 7
1

#控制結構

if...else 語句

  • 特性:根據條件執行不同的代碼塊。

  • 機制:評估條件表達式,如果為真,執行相應代碼塊。

  • 用途:進行條件判斷和分支處理。

function checkAge(age) {
    if (age >= 18) {
        console.log("您是成年人");
    } else if (age >= 13) {
        console.log("您是青少年");
    } else {
        console.log("您是兒童");
    }
}
checkAge(20);
// 輸出: 您是成年人

switch 語句

  • 特性:基於不同的情況執行不同的代碼塊。

  • 機制:比較 switch 表達式與 case 子句的值,執行匹配的 case。

  • 用途:當有多個分支條件時,比 if...else 更清晰。

function getDayName(dayNumber) {
    switch (dayNumber) {
        case 1:
            return "星期一";
        case 2:
            return "星期二";
        // ... 其他天
        case 7:
            return "星期日";
        default:
            return "無效的日期";
    }
}
console.log(getDayName(3));
// 輸出: 星期三

for 循環

  • 特性:重複執行代碼塊指定的次數。

  • 機制:初始化、條件檢查、更新三個部分組成。

  • 用途:適用於已知迭代次數的情況。

(可以使用 break 提前退出,使用 continue 跳過當前迭代)

for (let i = 0; i < 5; i++) {
    console.log(`${i}`);
}
// 輸出:
// 0
// 1
// 2
// 3
// 4

while 循環

  • 特性:當條件為真時重複執行代碼塊。

  • 機制:每次迭代前檢查條件。

  • 用途:適用於不確定迭代次數的情況。

let count = 0;
while (count < 3) {
    console.log(`count: ${count}`);
    count++;
}
// 輸出:
// count: 0
// count: 1
// count: 2

do...while 循環

  • 特性:至少執行一次代碼塊,然後在條件為真時重複。

  • 機制:先執行一次代碼塊,然後檢查條件。

  • 用途:當你需要代碼塊至少執行一次時使用。

let x = 0;
do {
    console.log(`x: ${x}`);
    x++;
} while (x < 3);
// 輸出:
// x: 0
// x: 1
// x: 2

for...in 循環

    • 特性:遍歷對象的可枚舉屬性。
  • 機制:遍歷對象的鍵(包括繼承的屬性)。

  • 用途:主要用於遍歷對象屬性。

(注意:不適用於數組,因為順序不保證,也可能遍歷到原型鏈上的屬性)

const person = { name: "Alice", age: 30, job: "Engineer" };
for (let key in person) {
    console.log(`${key}: ${person[key]}`);
}
// 輸出:
// name: Alice
// age: 30
// job: Engineer

for...of 循環

  • 特性:遍歷可迭代對象的值。

  • 機制:直接訪問值,而不是索引或鍵。

  • 用途:適用於數組、字符串、Map、Set 等可迭代對象。

const colors = ["red", "green", "blue"];
for (let color of colors) {
    console.log(color);
}
// 輸出:
// red
// green
// blue

try...catch...finally 語句

  • 特性:處理代碼中可能出現的錯誤。

  • 機制:嘗試執行代碼,捕獲並處理錯誤,最後執行清理代碼。

  • 用途:錯誤處理和異常管理。

注意:finally 塊總是會執行,即使有 return 語句。

function divideTwoNumbers(a, b) {
    try {
        if (b === 0) {
            throw new Error("除數不能為零");
        }
        return a / b;
    } catch (error) {
        console.error(`錯誤: ${error.message}`);
        return null;
    } finally {
        console.log("計算完成");
    }
}
console.log(divideTwoNumbers(10, 2));
// 輸出:
// 計算完成
// 5
console.log(divideTwoNumbers(10, 0));
// 輸出:
// 錯誤: 除數不能為零
// 計算完成
// null

break 和 continue 語句

  • break:立即退出最內層的循環或 switch 語句。

  • continue:跳過當前迭代的剩餘部分,繼續下一次迭代。

for (let i = 0; i < 5; i++) {
    if (i === 2) continue; // 跳過 2
    if (i === 4) break;    // 在 4 時退出循環
    console.log(i);
}
// 輸出:
// 0
// 1
// 3

上一篇
d6 運算符和表達式
下一篇
d8 函數(上)
系列文
javascript基礎自學及各工具應用了解30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言